Re: [SQL] Multiple values for a field

Поиск
Список
Период
Сортировка
От Herouth Maoz
Тема Re: [SQL] Multiple values for a field
Дата
Msg-id l03130307b3dc6e665034@[147.233.159.109]
обсуждение исходный текст
Ответ на Multiple values for a field  ("Mike Field" <mike@fieldco.com>)
Ответы Re: [SQL] Multiple values for a field  ("Ross J. Reedstrom" <reedstrm@wallace.ece.rice.edu>)
Список pgsql-sql
At 18:11 +0300 on 13/08/1999, Mike Field wrote:


> Do  you see any problem if I put the actual names of the authors,  comma
> separated, in the author field (for example:  Mike Field, Tom  Lane, ZZ Top)?
> I would do the same for my six fields which may have multiple  values
> (author, region, subject, related_projects, doc_type, translations) I  have
> about 550 documents to put into the database.

Repeating groups are harder to update. What if you found out that you made
a spelling mistake in some region, and you have to go through the entire
table, find it in each of the strings, and replace with the correct
version. What if you wanted to drop an author? You have to select it, fix
and update. Too much work.

> I know using text  fields would take up more space relative to just using a
> number to refer to  the author... but using a number makes me perform more
> loops and thus, more  processing time.

An alternative may be to create an aggregate function that will give you
the comma-separated list you desired upon request:

CREATE AGGREGATE textcat_all
(basetype = text,sfunc1 = textcat,stype1 = text
);

Then you can do something like:

SELECT da.docid, textcat_all( a.Author_name || ',' )
FROM docs_authors da, authors a
WHERE da.authorid = a.id
GROUP BY da.docid;

This will return a comma-separated list of author names for each doc id,
assuming the actual author name is in a separate table. There is an extra
comma at the end, but I don't suppose that's too much of a problem.

Herouth

--
Herouth Maoz, Internet developer.
Open University of Israel - Telem project
http://telem.openu.ac.il/~herutma




В списке pgsql-sql по дате отправления:

Предыдущее
От: Herouth Maoz
Дата:
Сообщение: Re: [SQL] Intentionally inserting duplicates without aborting
Следующее
От: Herouth Maoz
Дата:
Сообщение: Re: [SQL] err: select f() from i where (f()) in (select f() from x group by j);